﻿/******************************************************************************/
#include "stdafx.h"
#include "Main.h"
/******************************************************************************/
// MANAGE
/******************************************************************************/
Player::Player()
{
   move_randomly=false;
   InvGui.link(&inv); // when creating a player automatically link him with InvGui
}
void Player::create(Game::ObjParams &obj_params)
{
   super::create(obj_params);
   ctrl.actor.group(AG_PLAYER);
}
void Player::create(NetChr &chr)
{
   inv.create(chr.inv);
}
/******************************************************************************/
// UPDATE
/******************************************************************************/
Bool Player::update()
{
   if(Kb.bp(KB_ENTER))playAnimation("anim/swing/r-l.anim");
   if(Kb.bp(KB_SLASH))move_randomly^=1;
   
   if(super::update())
   {
      // toggle inventory
      if(InvGui.inv==&inv && !inv.valid(SLOT_TEMP))
      {
         if(Kb.bp(KB_TAB))InvGui.toggle();
      }
      if(move_randomly && !action)actionMoveTo(Random(Rect_C(0,0,20,20)).x0y());
      return true;
   }
   return false;
}
/******************************************************************************/
// NETWORK
/******************************************************************************/
void Player::sendPos()
{
   ChrPos cp;
   cp.pos      =T.pos();
   cp.angle    =angle.x;
   cp.stop_move=anim.stop_move;
   cp.walk_run =anim.walk_run ;
   ClientSendChrPos(Server, cp);
}
void Player::sendAnimation(SkelAnim *skel_anim)
{
   if(skel_anim)
      if(CChar *anim=skel_anim->name()) // get animation file name
         ClientSendChrAnim(Server, anim);
}
void Player::sendInvSlots()
{
   ClientSendChrInvSlots(Server, inv.slots);
}
/******************************************************************************/
